package posRecognitionLikeABoss;

import java.util.ArrayList;

import processing.core.PApplet;
import SimpleOpenNI.SimpleOpenNI;

/**
 * @author Adem
 *Liste die PoseRule objekte aufnimmt und mit neuen Reglen erzeugen kann
 */
public class SkeletonPoser {
	PApplet parent;// Processing verison raus
//init der Objekte
	SimpleOpenNI context;
	ArrayList rules;

	/**
	 * Konstruktor
	 * @param context
	 * @param p
	 */
	SkeletonPoser(SimpleOpenNI context, PApplet p) {
		parent = p;//Processing version raus
		this.context = context;
		rules = new ArrayList();
	}

	/**
	 * Methode zur erzeugung von Regeln
	 * @param fromJoint Von diesem knochen...
	 * @param jointRelation ..mit der Regel/Relation...(aus PoseRule)
	 * @param toJoint ...zu diesem Knochen
	 */
	void addRule(int fromJoint, int jointRelation, int toJoint) {
		PoseRule rule = new PoseRule(context, fromJoint, jointRelation,
				toJoint, parent);//parent muss raus in der PRocessin version
		rules.add(rule);
	}

	/**
	 * Iterriert durch alle Reglen die in der Liste sind
	 * @param userID
	 * @return
	 */
	boolean check(int userID) {
		boolean result = true;
		for (int i = 0; i < rules.size(); i++) {
			PoseRule rule = (PoseRule) rules.get(i);
			result = result && rule.check(userID);
		}
		return result;
	}
}
